博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask – SQLAlchemy成员增加
阅读量:4599 次
发布时间:2019-06-09

本文共 3259 字,大约阅读时间需要 10 分钟。

目录

简介

结构

$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- readme.md|-- templates/|   |-- addnew.html|   |-- home.html|   `-- show_all.html`-- views.py

展示

1. 主页

720033-20190719214954510-95842715.png

2. 学生信息查看

720033-20190719215106361-986697090.png

3. 添加学生信息

720033-20190719215214766-1723489616.png

技术

  • Flask – SQLAlchemy的使用
  • flask中表单数据的传递

运行

python .\views.py

代码

创建数据库表单

# crdb.pyimport sqlite3conn = sqlite3.connect('database.db')print "Opened database successfully";conn.execute('CREATE TABLE students (name TEXT, addr TEXT, city TEXT, pin TEXT)')print "Table created successfully";conn.close()

views视图

from flask import Flask, request, flash, url_for, redirect, render_templatefrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'app.config['SECRET_KEY'] = "random string"app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class Student(db.Model):    # __tablename__ = 'student'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(100))    city = db.Column(db.String(50))    addr = db.Column(db.String(200))    pin = db.Column(db.String(10))    def __init__(self, name, city, addr, pin):        self.name = name        self.city = city        self.addr = addr        self.pin = pin@app.route('/')def home():    """主页"""    return render_template('home.html')@app.route('/show_all')def show_all():    """展示所有"""    data = Student.query.all()    return render_template('show_all.html', students=data)@app.route('/addnew', methods=['GET', 'POST'])def addnew():    """添加新成员"""    if request.method == 'POST':        f_name = request.form['name']        f_city = request.form['city']        f_addr = request.form['addr']        f_pin = request.form['pin']        if not f_name or not f_city or not f_addr:            flash('请填入必要项')        else:            stuinfo = Student(f_name, f_city, f_addr, f_pin)            db.session.add(stuinfo)            db.session.commit()            flash('添加成功')            return redirect(url_for('show_all'))    return render_template('addnew.html')if __name__ == '__main__':    # db.drop_all()    db.create_all()    app.run(debug=True)

home主页

    
主页

查看学生信息

添加学生信息

添加成员addnew.html

         

学生信息表


{%- for category, message in get_flashed_messages(with_categories = true) %}
{
{ message }}
{%- endfor %}

返回主页

展示页show_all

   

学生表


添加新成员

{% for student in students %}
{% endfor %}
姓名 城市 地址 邮编
{
{ student.name }}
{
{ student.city }}
{
{ student.addr }}
{
{ student.pin }}

消息提示

消息通知: {%- for message in get_flashed_messages() %} {
{ message }} {%- endfor %}

返回主页

转载于:https://www.cnblogs.com/xuwei1/p/11215931.html

你可能感兴趣的文章
集合以及特殊集合
查看>>
USACO 2.2 Runaround Numbers
查看>>
Matlab画图-非常具体,非常全面
查看>>
365. Water and Jug Problem
查看>>
SQL数据库数据检索top和distinct
查看>>
平衡搜索树--红黑树 RBTree
查看>>
sqlite驱动下载
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
Python :类中设置默认属性并修改
查看>>
磁盘管理综合测试
查看>>
Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
查看>>
UMLet
查看>>
从父控件移除控件
查看>>
calc()制作自适应布局
查看>>
Markdown-写作必备
查看>>
关于在Java中 a!=a 值为真的解释(摘抄)
查看>>
C#串口小助手
查看>>
详解定位与定位应用
查看>>